'''
function：
    车辆入站的距离判断(不改变任何值)
return:
车辆即将到达的站点的列表下标序号（如果没有到达任何站，或者任然还没出站，则返回-1）
'''
def come_platform():

    thresh_2 = config.THRESHOLD ** 2            # 距离阈值的平方
    plat_num = len(config.platform_name)        # 站点个数

    for i in range(plat_num):
        distance_2 = ((config.LONGITUDE - config.platform_longitude[i]) ** 2) + ((config.LATITUDE - config.platform_latitude[i]) ** 2)
        print('[come_platform]  distance的平方  ', distance_2, '  thresh_2的平方')
        if distance_2 < thresh_2:           # 距离小于域值，说明到站
            if i == config.NOW_PLATFORM or i == config.OLD_PLATFORM:    # 和当前站点相同，则忽略，和上一个站点相同，也忽略（防止因为GPS信号不稳定导致重复进站）
                continue
            else:                           # 和当前站点不同，则说明到达一个新站点
                return i
    return -1                           # 遍历一圈，没到达任何新站点，则返回-1        




'''
function：
    根据距离，返回即将出站的列表下标（不改变任何值）
return:
    车辆即将离开的站点的列表序号（如果没有离开任何站，或者任然还没出站，则返回-1）
'''
def leave_platform():
    thresh_2 = config.THRESHOLD ** 2            # 距离阈值的平方
    if config.NOW_PLATFORM >= 0:
        i = config.NOW_PLATFORM
        distance_2 = ((config.LONGITUDE - config.platform_longitude[i]) ** 2) + ((config.LATITUDE - config.platform_latitude[i]) ** 2)
        
        if distance_2 > thresh_2:  # 距离大于域值，说明离站
            return i
        else:
            return -1  # 还未离站
    else:
        return -1  # 还未到达任何站，所以也不能离站